﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.IO;
using System.Timers;

namespace CEP
{
    public partial class Service : ServiceBase
    {

        public Service()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Função chamada quando o serviço arranca
        /// Responsável por inicializar todo o processo
        /// </summary>
        /// <param name="args"></param>
        protected override void OnStart(string[] args)
        {

            //Escrevo no arquivo texto no momento exato que o arquivo for iniciado
            Log.Instance.escrever("Servico iniciado");
            
            //iniciar loop
            AutoTimer.Instance.init();

        }

        /// <summary>
        /// Função chamada quando o serviço termina
        /// </summary>
        /// <param name="args"></param>
        protected override void OnStop()
        {

            try
            {
                //terminar loop
                AutoTimer.Instance.stop();
            }
            catch (Exception e) {
                Log.Instance.escrever("Erro ao terminar o processo: " + e.Message);
            }

            //Escrevo no arquivo texto no momento exato que o arquivo for encerrado
            Log.Instance.escrever("Servico encerrado");

        }
    }
}
